package com.ruoyi.ldzlsb.service;

import java.util.List;
import com.ruoyi.ldzlsb.domain.SbMaintenanceConfig;

/**
 * 保养配置Service接口
 * 
 * @author anli
 * @date 2025-01-11
 */
public interface ISbMaintenanceConfigService 
{
    /**
     * 查询保养配置
     * 
     * @param configId 保养配置主键
     * @return 保养配置
     */
    public SbMaintenanceConfig selectSbMaintenanceConfigByConfigId(Long configId);

    /**
     * 查询保养配置列表
     * 
     * @param sbMaintenanceConfig 保养配置
     * @return 保养配置集合
     */
    public List<SbMaintenanceConfig> selectSbMaintenanceConfigList(SbMaintenanceConfig sbMaintenanceConfig);

    /**
     * 查询保养配置列表(包含设备类型名称)
     * 
     * @param sbMaintenanceConfig 保养配置
     * @return 保养配置集合
     */
    public List<SbMaintenanceConfig> selectSbMaintenanceConfigWithTypeList(SbMaintenanceConfig sbMaintenanceConfig);

    /**
     * 新增保养配置
     * 
     * @param sbMaintenanceConfig 保养配置
     * @return 结果
     */
    public int insertSbMaintenanceConfig(SbMaintenanceConfig sbMaintenanceConfig);

    /**
     * 修改保养配置
     * 
     * @param sbMaintenanceConfig 保养配置
     * @return 结果
     */
    public int updateSbMaintenanceConfig(SbMaintenanceConfig sbMaintenanceConfig);

    /**
     * 批量删除保养配置
     * 
     * @param configIds 需要删除的保养配置主键集合
     * @return 结果
     */
    public int deleteSbMaintenanceConfigByConfigIds(Long[] configIds);

    /**
     * 删除保养配置信息
     * 
     * @param configId 保养配置主键
     * @return 结果
     */
    public int deleteSbMaintenanceConfigByConfigId(Long configId);

    /**
     * 校验配置编号是否唯一
     * 
     * @param sbMaintenanceConfig 保养配置
     * @return 结果
     */
    public boolean checkConfigCodeUnique(SbMaintenanceConfig sbMaintenanceConfig);

    /**
     * 校验设备类型是否被保养配置使用
     * 
     * @param typeId 设备类型ID
     * @return 结果 true 存在 false 不存在
     */
    public boolean checkTypeIdExistConfig(Long typeId);

    /**
     * 生成配置编码
     * 
     * @return 配置编码
     */
    public String generateConfigCode();

    /**
     * 根据配置编码查询保养配置
     * 
     * @param configCode 配置编码
     * @return 保养配置
     */
    public SbMaintenanceConfig selectSbMaintenanceConfigByConfigCode(String configCode);

    /**
     * 根据设备类型ID查询保养配置列表
     * 
     * @param typeId 设备类型ID
     * @return 保养配置集合
     */
    public List<SbMaintenanceConfig> selectSbMaintenanceConfigByTypeId(Long typeId);

    /**
     * 导入保养配置数据
     * 
     * @param configList 保养配置列表
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    public String importMaintenanceConfig(List<SbMaintenanceConfig> configList, Boolean isUpdateSupport, String operName);
} 